/**
 * 
 */
package com.ffcs.crmd.tsp.task.threadpool.api;

import java.util.Map;
import java.util.concurrent.CountDownLatch;

import com.ffcs.crmd.tsp.api.dto.job.TspJobDetailShell;
import com.ffcs.crmd.tsp.task.job.BusinessProcessor;

/**
 * 功能说明:子任务处理线程接口
 *
 * @author ZHONGFUHUA
 * 
 * @since 2.0.0-SNAPSHOT
 *
 */
public interface IJobProcessRunnable extends Runnable {
    
    /**
     * 功能说明: 获取业务数据处理结束等待锁
     *
     * @return 业务数据处理结束等待锁
     */
    public CountDownLatch getReturnWaitting();
    
    /**
     * 功能说明: 获取子任务运行内核通信体
     *
     * @return 子任务运行内核通信体
     */
    public TspJobDetailShell getTspJobDetailShell();
    
    /**
     * 功能说明: 获取业务数据处理线程
     * @param <T> 业务数据类型
     *
     * @return 业务数据处理线程
     */
    public <T> Map<BusinessProcessor<T>, T> getBusinessProcessThreadMap();

}
